home *** CD-ROM | disk | FTP | other *** search
- '' Intuitext example
- ''
- '' Shows direct drawing of text from Intuition
- '' Derived from RKM example (c) Copyright 1992 Commodore-Amiga, Inc.
- ''
- ''$include intuition.bh
- ''$include exec.bh
- ''$include graphics.bh
- DEFINT a-z
- CALL Test
-
- SUB InitTextAttr(T(1),FontName$,BYVAL Height,BYVAL style,BYVAL flags)
- POKEL VARPTR(T(0))+ta_Name%,SADD(FontName$+CHR$(0))
- t(ta_YSize\2)=Height
- POKEB VARPTR(T(0))+ta_Style,style
- POKEB VARPTR(T(0))+ta_Flags,flags
- END SUB
-
- SUB InitIntuiText(T(1),BYVAL frontpen, BYVAL backpen, BYVAL drawmode, BYVAL leftedge, BYVAL topedge, font(1), textstring$, BYVAL nextptr&)
- STATIC t&
- t&=VARPTR(t(0))
- POKEB t&,frontpen
- POKEB t&+IntuiTextBackPen,backpen
- POKEW t&+IntuiTextDrawMode,drawmode
- POKEW t&+IntuiTextLeftEdge,leftedge
- POKEW t&+IntuiTextTopEdge,topedge
- POKEL t&+ITextFont, VARPTR(font(0))
- POKEL t&+IText, SADD(textstring$+CHR$(0))
- POKEL t&+NextText,nextptr&
- END SUB
-
- SUB Test
- STATIC mysc&,drawinfo&,win&,dipens&
- STATIC mytextpen,mybackpen,dif&,t!
- DIM SHARED TextAttr(4),myitext(IntuiText_sizeof),temp&(30)
- LIBRARY OPEN "intuition.library",37
- mysc& = LockPubScreen(0)
- IF mysc&=0 THEN
- PRINT "Couldn't lock public screen"
- ELSE
- drawinfo&=GetScreenDrawInfo&(mysc&)
- IF drawinfo& THEN
- dipens&=PEEKL(drawinfo&+dri_pens)
- mytextpen=PEEKW(dipens&+TEXTPEN&*2)
- mybackpen=PEEKW(dipens&+BACKGROUNDPEN&*2)
- dif&=PEEKL(drawinfo&+dri_font)
- InitTextAttr TextAttr(),PEEK$(PEEKL(dif&+tf_message+mn_node+ln_name)),PEEKW(dif&+tf_Ysize),PEEKB(dif&+tf_Style),PEEKB(dif&+tf_Flags)
- TAGLIST VARPTR(temp&(0)),WA_Pubscreen&,mysc&,WA_RMBTRAP&,1&,0&
- win&=OpenWindowTagList(0,VARPTR(temp&(0)))
- IF win& THEN
- InitIntuiText myItext(),mytextpen,mybackpen,JAM2&,0,0,textattr(),"hello there",0
- PrintItext PEEKL(win&+rport),VARPTR(myitext(0)),50,50
- t!=TIMER
- WHILE TIMER<t!+5
- WEND
- CloseWindow win&
- END IF
- FreeScreenDrawInfo mysc&,drawinfo&
- END IF
- UnlockPubScreen 0, mysc&
- END IF
- END SUB
-